![Auth0で多要素認証での音声通話利用がGAされていました](https://devio2023-media.developers.io/wp-content/uploads/2019/03/auth0-eyecatch.001.png)
Auth0で多要素認証での音声通話利用がGAされていました
Auth0は、多要素認証のための使い捨てコードを含むSMSメッセージの送信をサポートしていましたが、 これらのコードを音声通話で配信するオプションが追加されました。
Auth0からのお知らせには、以下のようなシナリオでSMSよりも有効だと言及されています。
- 一部の業界には、テクノロジーに慣れていないユーザーがいて、携帯電話を持っていない可能性があります。
- ユーザーは、携帯電話を携帯することはできないが、固定電話にはアクセスできる施設内のアプリケーションにアクセスする必要があります。
- 旅行中、SMSは確実に配信されない可能性がありますが、音声通話はより信頼できる場合があります。
やってみる
- Auth0のアカウント
- Twilioのアカウント
が必要です。
Auth0ダッシュボードのMFA設定画面で、Phone Message
のトグルをオンにします。
Delivery Providerとして、Auth0,Twilio, Customが選べますが、
Auth0はボイスメッセージを送信することはできません。今回はTwilioを使います。
Twilioは、Twilio Programmable SMS API for SMSまたはTwilio Programmable Voice API for Voice を使用してメッセージを送信します。
SMS and Voice
かVoice
を選択します。
SMS and Voice
だと、ユーザーは、SMSまたは音声で確認コードを受け取ることを選択できます。
Twilio SID、Twilio AuthToken、SMS Source、From の設定をします。
- Twilio SID
- Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。
- Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。
-
- Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。
- Twilioのコンソールにログインし、使用するプロジェクトのダッシュボードページからコピーします。
-
SMS Source
- Messaging Serviceを利用する場合は、
Messaging Service SID
が必要です - Use Fromを利用する場合は、
From
にTwilioで取得した電話番号を入力します ← 今回はこれ
- Messaging Serviceを利用する場合は、
必須項目を入力し終えた後、Enrollment Template
とVerification Template
を編集します。
※ デフォルトのまま使っても大丈夫ですが、今回は日本語を使用するようにしてみます。
Liquid Syntaxを使用してテンプレートを作れます。
これでAuth0とTwilioの設定は終わりです。
確認する
サンプルのアプリケーションを使って認証フローを試してみます。
MFAを有効にした状態でログインしようとすると、以下のようにテキストメッセージか電話か選択できるようになっています。
※ SMS and Voice
で設定したため
自身の電話番号を入力し、音声通話で受け取るようにすると、電話がかかってきます。
こんな感じ
音声で言われたコードをログイン画面に入力すればログインできます。
テキストコードと一緒で、再度電話をかけ直すことも可能です。
MFAデバイスとして個人の携帯電話の使用が禁止されている環境などで、施設の電話を使ってMFAの認証コードを受け取れるようになるので 嬉しい人もいるのではないでしょうか?
今回はTwilioで設定しましたが、電話送信はカスタムHookを使用することも可能ですので、様々なプロバイダーの例を確認してみてください。